/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.ps.server;

import com.ps.server.classes.configurations;
import java.util.Hashtable;
import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

/**
 *
 * @author Ricardo
 */
public class ConfigurationsLibraryXMLReader extends DefaultHandler {

    Hashtable nodos = new Hashtable();
    private configurations nodoActualConfigurations = new configurations();
    String resource;
    private String contenido;
    //private clsProduct nodoActual = new clsProduct();

    public ConfigurationsLibraryXMLReader(Hashtable nodos) {
        this.nodos = nodos;
    }

    public ConfigurationsLibraryXMLReader() {
    }
    /*
     * Esta funcion el llamada cuando se produce el evento de ver una nueva
     * etiqueta
     */

    @Override
    public void startElement(String uri, String localName, String qName, Attributes attributes) {

        if ("configurations".equals(qName)) {
            this.resource = qName;
            nodoActualConfigurations = new configurations();
        }
        
        if ("configuration".equals(qName)) {
            nodoActualConfigurations = new configurations();
        }
    }
    /*
     * Esta funcion es llamada cuando ve el contenido de una etiqueta
     */

    @Override
    public void characters(char buf[], int offset, int len)
            throws SAXException {
        contenido = new String(buf, offset, len);

    }
    /*
     * y esta al llegar al final
     */

    @Override
    public void endElement(String uri, String localName, String qName) {
        if (this.resource.equals("configurations")) {
            resourceCategories(qName);
        }
    }

    void resourceCategories(String qName) {
        if ("id".equals(qName)) {
            // aqui se ya se sabe  el orden de  inicializacion de las variables.
            this.nodoActualConfigurations.setId(contenido);
        }
//            if (this.associations == true && this.categories != null && this.products == null ) {
//                categories.add(contenido);
//            } else if (this.associations == true && this.products != null) {
//                products.add(contenido);
//            } else {
//                nodoActualCategories.setId(contenido);
//            }
//        }
        if ("value".equals(qName)) {
            nodoActualConfigurations.setValue(contenido);
        }
        if ("name".equals(qName)) {
            nodoActualConfigurations.setName(contenido);
        }
        if ("id_group_shop".equals(qName)) {
            nodoActualConfigurations.setId_group_shop(contenido);
        }

        if ("id_shop".equals(qName)) {
            nodoActualConfigurations.setId_shop(contenido);
        }

        if ("date_add".equals(qName)) {
            nodoActualConfigurations.setDate_add(contenido);
        }

        if ("date_upd".equals(qName)) {
            nodoActualConfigurations.setDate_upd(contenido);
        }


        if ("configuration".equals(qName)) {

            if (!this.nodos.containsKey(this.nodoActualConfigurations.getName())) {
                this.nodos.put(this.nodoActualConfigurations.getName(), this.nodoActualConfigurations);
            }
        }



    }
}